home *** CD-ROM | disk | FTP | other *** search
- /*
- * Dataload.c
- */
-
- #define QDataload
-
- #include "osfile.h"
- #include "QMain.h"
- #include "QDataload.h"
- #include "QInitialise.h"
- #include "QCreatenewview.h"
-
- void Dataload(wimp_block *Block)
- {
- int dummy;
- int Objtype;
- int Loadaddr;
- int Execeddr;
- bits Attr;
- int Filetype;
- char *fname;
-
- if (Block->message.data.data_xfer.w==wimp_ICON_BAR_LEFT) { /* WTF? */
- if (Block->message.data.data_xfer.i==IconbarIconHandle) {
- if (Loadedtype!=-1) {
- osfind_close(Loadedfile);
- for (dummy=0; dummy<MaxViewers; dummy++) {
- if (Viewers[dummy] != NULL) {
- wimp_close_window(Viewers[dummy]);
- wimp_delete_window(Viewers[dummy]);
- Viewers[dummy]=NULL;
- };
- }
- }
- if (xosfind_openin(osfind_NO_PATH,
- (char *) &(Block->message.data.data_xfer.file_name),
- (char *) NULL, &Loadedfile)==NULL){
- Loadedtype=Block->message.data.data_xfer.file_type;
- Objtype=osfile_read_stamped_no_path (
- (char *) &(Block->message.data.data_xfer.file_name),
- &Loadaddr, &Execeddr, &Loadedsize, &Attr, &Filetype);
- /* Loadedsize=Block->message.data.data_xfer.est_size; */
- Block->message.your_ref=Block->message.my_ref;
- Block->message.action=message_DATA_LOAD_ACK;
- wimp_send_message(19, &(Block->message), Block->message.sender);
- Selectionstart=0; Selectionend=1;
- fname=(char *)&(Block->message.data.data_xfer.file_name);
- Wviewer->title_data.indirected_text.text=Wtitles[0];
- for (dummy=0; fname[dummy]>31; dummy++) {
- Wviewer->title_data.indirected_text.text[dummy]=fname[dummy];
- }
- Wviewer->title_data.indirected_text.text[dummy++]=' ';
- MainViewNOffset=dummy;
- Wviewer->title_data.indirected_text.text[dummy++]='1';
- Wviewer->title_data.indirected_text.text[dummy]=0;
- Wviewer->extent.x0=0;
- Wviewer->extent.y0=0-(Loadedsize*Charheight/4);
- Wviewer->extent.x1=Xwidth*Charwidth;
- Wviewer->extent.y1=0;
- /* Note that size is charheight * number of 4-byte words in file */
- if ((Loadedtype>=0) && (Loadedtype<=0xFFF)) {
- if (Addresses[Loadedtype]!=-1) {
- Baseaddress=Addresses[Loadedtype];
- } else {
- Baseaddress=Defaultbaseaddr;
- }
- } else {
- Baseaddress=Loadaddr;
- }
- Createnewview(0);
- }
- }
- }
- }
-
-